Qt (biblioteka)
Qt – wieloplatformowa biblioteka programistyczna służąca do tworzenia graficznych interfejsów użytkownika (GUI) oraz aplikacji działających w środowiskach Linux, Windows, macOS, Android i iOS. Projektowana jest głównie w języku C++, a od wersji 5.0 udostępnia także warstwę QML oraz technologię Qt Quick umożliwiającą programowanie reaktywne.
Historia
Biblioteka została założona w 1991 roku przez firmę Haivision (wówczas Trolltech) pod nazwą Qt (od QuickTechnology). Pierwsza wersja Qt 1.0 pojawiła się w 1995 roku i była przeznaczona wyłącznie dla systemu X11. Po przejęciu przez Nokia w 2008 roku oraz późniejszym zakupie przezThe Qt Company w 2012 roku, projekt stał się otwarto‑źródłowy i przyjął licencję LGPL oraz komercyjną.
Architektura i podstawowe komponenty
- Qt Core – podstawowy moduł zawierający klasy zarządzania pamięcią, zdarzeniami, wątkami oraz kontenerami.
- Qt GUI – obsługa graficznych elementów interfejsu, renderowanie 2‑D oraz wsparcie dla OpenGL.
- Qt Widgets – tradycyjny zestaw widżetów (przyciski, listy, tabele) umożliwiający tworzenie klasycznych interfejsów desktopowych.
- Qt Quick – framework oparty na QML i JavaScript, przeznaczony do budowy dynamicznych, dotykowych UI.
- Qt Network – klasy umożliwiające komunikację sieciową (TCP/IP, HTTP, WebSockets).
- Qt Multimedia – obsługa dźwięku, wideo oraz urządzeń multimedialnych.
- Qt SQL – warstwa abstrakcji baz danych (SQLite, MySQL, PostgreSQL).
- Qt Test – narzędzia do testowania jednostkowego aplikacji Qt.
Obsługiwane języki i powłoki
Podstawowym językiem jest C++, ale Qt oferuje także:
- Python – poprzez projekt PyQt oraz Qt for Python (PySide).
- Java – w przeszłości Qt Jambi.
- C# – dzięki QtSharp.
- QML – język deklaratywny do definiowania interfejsów w Qt Quick.
Zastosowania
Qt jest wykorzystywane w szerokim spektrum projektów:
- Systemy operacyjne i środowiska graficzne (np. KDE Plasma).
- Aplikacje biurowe (LibreOffice częściowo oparty na Qt).
- Oprogramowanie przemysłowe i sterowanie (systemy SCADA, automatyka).
- Rozwiązania multimedialne (odtwarzacze, edytory wideo).
- Aplikacje mobilne i wbudowane (samochodowe, medyczne).
Licencjonowanie
Qt dostępny jest w dwóch głównych modelach licencyjnych:
- Licencja otwarto‑źródłowa – LGPL (wersje 2.1 i 3.0) oraz GPL. Umożliwia darmowe wykorzystanie w projektach zgodnych z warunkami tych licencji.
- Licencja komercyjna – płatna, przeznaczona dla firm, które potrzebują zamkniętego kodu źródłowego lub wyłącznych praw dystrybucji.
Rozwój i społeczność
Rozwój Qt prowadzony jest przez The Qt Company oraz liczną społeczność programistów. Co roku organizowane są konferencje Qt Day oraz Qt Developers Conference, a kod źródłowy jest hostowany w publicznych repozytoriach Git.
Przykład prostego programu
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton przycisk("Kliknij mnie");
przycisk.show();
return app.exec();
}
Powyższy kod ilustruje klasyczną aplikację okienkową stworzoną przy użyciu Qt Widgets.
Linki wewnętrzne
W niniejszym artykule można znaleźć odnośniki do innych wpisów encyklopedycznych, które rozwijają tematy poruszone powyżej, takie jak C++, QML, Linux, Windows czy macOS.